package com.hwadee.property.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hwadee.property.pojo.UserActivityLog;
import com.hwadee.property.dto.PageResult;

import java.util.List;


/**
 * 用户活动日志服务接口
 */
public interface IUserActivityLogService extends IService<UserActivityLog> {
    PageResult<UserActivityLog> getActivityLogsByPage(Long userId, Long communityId, Integer userType, String logType,
                                                      String startTime, String endTime, int currentPage, int pageSize);


    /**
     * 根据用户ID和时间范围查询活动日志
     * @param userId 用户ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 活动日志列表
     */
    List<UserActivityLog> getActivityLogsByUserIdAndTimeRange(Long userId, String startTime, String endTime);

    /**
     * 根据小区ID查询活动日志
     * @param communityId 小区ID
     * @return 活动日志列表
     */
    List<UserActivityLog> getActivityLogsByCommunityId(Long communityId);

    /**
     * 根据用户ID查询活动日志
     * @param userId 用户ID
     * @return 活动日志列表
     */
    List<UserActivityLog> getActivityLogsByUserId(Long userId);

    /**
     * 插入用户活动日志
     * @return 是否成功
     */
    boolean saveActivityLog(Long userID, Long communityID, String content, Double amount, String logType, String relatedRecordID);

    List<UserActivityLog> getActivityLogsByTimeRange(String startTime, String endTime);
/*
    根据关联记录ID获取活动日志

    无法实现，关联的id需要先判定是属于哪张表的，再判定id数值
    想知道具体的日志信息，通过 detail 的内容实现，将相关的数据都转换成文字，记录在日志中
    对于其他实体的每一个方法，在方法的最后添加record方法，用于添加日志记录

    List<UserActivityLog> getActivityLogsByRelatedRecordId(Long relatedRecordId);
    */
}